﻿#include<iostream>

#include<vector>

using namespace std;

//class Solution {
//public:
//    vector<int> searchRange(vector<int>& nums, int target) {
//        int left = 0, right = nums.size() - 1, begin = 0, end = 0;
//        if (nums.size() == 0) return { -1,-1 };
//        if (nums[left] > target || nums[right] < target) return { -1,-1 };
//        while (left <= right)
//        {
//            int pos = left + (right - left) / 2;
//            if (nums[pos] >= target) right = pos - 1;
//            else left = pos + 1;
//            if (left == right) begin = left;
//        }
//        left = 0; right = nums.size() - 1;
//        while (left <= right)
//        {
//            int pos = left + (right - left) / 2;
//            if (nums[pos] <= target) left = pos + 1;
//            else right = pos - 1;
//            if (left == right && nums[pos] == target) end = pos;
//        }
//        return { begin, end };
//    }
//};
//class Solution {
//public:
//    vector<int> searchRange(vector<int>& nums, int target) {
//        int left = 0, right = nums.size() - 1, begin = 0, end = 0;
//        if (nums.size() == 0) return { -1,-1 };
//        if (nums[left] > target || nums[right] < target) return { -1,-1 };
//        while (left < right)
//        {
//            int pos = left + (right - left) / 2;
//            if (nums[pos] >= target) right = pos;
//            else left = pos + 1;
//            if (left == right) begin = right;
//        }
//        left = 0; right = nums.size() - 1;
//        while (left < right)
//        {
//            int pos = left + (right - left) / 2;
//            if (nums[pos] <= target) left = pos;
//            else right = pos - 1;
//            if (left == right) end = left;
//        }
//        return { begin, end };
//    }
//};

//class Solution
//{
//public:
//    vector<int> searchRange(vector<int>& nums, int target)
//    {
//        // 处理边界情况
//        if (nums.size() == 0) return { -1, -1 };
//         int begin = 0;
//        // 1. ⼆分左端点
//        int left = 0, right = nums.size() - 1;
//        while (left < right)
//        {
//            int mid = left + (right - left) / 2;
//            if (nums[mid] < target) left = mid + 1;
//            else right = mid;
//        }
//        // 判断是否有结果
//        if (nums[left] != target) return { -1, -1 };
//        else begin = left; // 标记⼀下左端点
//        // 2.  ⼆分右端点
//        left = 0, right = nums.size() - 1;
//        while (left < right)
//        {
//            int mid = left + (right - left + 1) / 2;
//            if (nums[mid] <= target) left = mid;
//            else right = mid - 1;
//        }
//        return { begin, right };
//    }
//};


int main()
{
    int arr[100004] = { 0 };
    return 0;
}